\section{Pruebas unitarias en el proyecto}
	Dado que el proyecto está escrito en el lenguaje de programación Python, para la implementación de las pruebas unitarias, ha sido necesario el uso
	de una herramienta para tal propósito que esté especificamente diseñada para dicho lenguaje. El lenguaje Python provee de una biblioteca estándar
	para crear pruebas unitarias llamada \textit{unittest}\cite{python-unittest}. Esta biblioteca actúa como un \textit{framework}.\\
	
	A continuación, vamos a ver un ejemplo de pruebas unitarias en Python con \textit{unittest}, en el que se pretende probar tres funciones de la 
	biblioteca estándar de Python \textit{random}\cite{python-random} (que sirve para generar números pseudo-aleatorios):
	
	\begin{figure}[H]
		\centering
		\begin{minipage}{\textwidth}
			\fbox{
				\includegraphics[width=\textwidth]{../media/unittests-example.png}
			}
			\caption{Ejemplo de pruebas unitarias en Python}
			\end{minipage}			
	\end{figure}
	
	Las pruebas unitarias se hacen siempre creando una clase que herede de la clase \textit{unittest.TestCase}. Los tres tests están definidos con métodos
	cuyos nombres empiezan por \textit{test}. Esta convención de nombres informa al \textit{framework} sobre qué métodos representan tests.\\
	
	La clave de estos métodos es una llamada a una de estas tres funciones:
	
	\begin{itemize2}
		\item \texttt{assertEqual}, para comprobar un resultado esperado.
		\item \texttt{assertTrue}, para verificar una condición.
		\item \texttt{assertRaises}, para verificar que una excepción esperada se lanza.
	\end{itemize2}
	
	El método \textit{setUp} es lo primero que ejecuta el \textit{framework} y sirve para inicializar los tests. En este caso, \textit{setUp} nos sirve
	para crear una nueva lista en cada test. También se puede definir el método \textit{tearDown}, que se ejecuta después de que el \textit{framework}
	realice los tests (en este ejemplo no lo utilizamos).\\
	
	El último bloque final muestra una manera sencilla de ejecutar los tests. \textit{unittest.main} provee de una interfaz de consola para los tests.
	Cuando ejecutemos este ejemplo desde la consola, se produce la siguiente salida:
	
	\begin{figure}[H]
		\centering
		\includegraphics[width=\textwidth]{../media/unittests-example-screenshot.png}
		\caption{Captura de pantalla: salida del ejemplo de pruebas unitarias en Python}
	\end{figure}
